home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Button;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Event;
- import java.awt.Graphics;
- import java.awt.GridBagConstraints;
- import java.awt.GridBagLayout;
- import java.awt.Image;
- import java.awt.Insets;
- import java.awt.Label;
- import java.awt.Panel;
- import java.awt.image.ImageObserver;
-
- public class CalculatorPanel2 extends Panel {
- Label displayField;
- Button button7;
- Button button8;
- Button button9;
- Button button4;
- Button button5;
- Button button6;
- Button button1;
- Button button2;
- Button button3;
- Button button0;
- Button buttonDivide;
- Button buttonMultiply;
- Button buttonSubtract;
- Button buttonPlusMinus;
- Button buttonPoint;
- Button buttonAdd;
- Button buttonBack;
- Button buttonClear;
- Button buttonEquals;
- String displayString;
- double pendingValue1;
- int pendingOperation;
- boolean hasPendingValue;
- boolean operationClicked;
- Color backgroundColor;
- Image osImage;
- Graphics osg;
- Color bkColor;
- static final int OPERATION_MULTIPLY = 0;
- static final int OPERATION_DIVIDE = 1;
- static final int OPERATION_ADD = 2;
- static final int OPERATION_SUBTRACT = 3;
- static final int OPERATION_EQUALS = 4;
-
- public CalculatorPanel2(Applet var1, int var2) {
- this.GetParameters(var1, var2);
- this.displayField = new Label(this.displayString, 2);
- this.displayField.setBackground(this.bkColor);
- this.button7 = new Button("7");
- this.button8 = new Button("8");
- this.button9 = new Button("9");
- this.button4 = new Button("4");
- this.button5 = new Button("5");
- this.button6 = new Button("6");
- this.button1 = new Button("1");
- this.button2 = new Button("2");
- this.button3 = new Button("3");
- this.button0 = new Button("0");
- this.buttonDivide = new Button("/");
- this.buttonMultiply = new Button("*");
- this.buttonSubtract = new Button("-");
- this.buttonPlusMinus = new Button("+/-");
- this.buttonPoint = new Button(".");
- this.buttonAdd = new Button("+");
- this.buttonBack = new Button("->");
- this.buttonClear = new Button("C");
- this.buttonEquals = new Button("=");
- this.pendingValue1 = (double)0.0F;
- this.hasPendingValue = false;
- this.operationClicked = true;
- GridBagLayout var3 = new GridBagLayout();
- GridBagConstraints var4 = new GridBagConstraints();
- ((Container)this).setLayout(var3);
- var4.gridwidth = 5;
- var4.gridheight = 1;
- var4.gridx = 0;
- var4.gridy = 0;
- var4.fill = 1;
- var4.insets = new Insets(2, 2, 2, 3);
- var4.weightx = (double)1.0F;
- var4.weighty = (double)1.0F;
- var3.setConstraints(this.displayField, var4);
- ((Container)this).add(this.displayField);
- var4.gridwidth = 1;
- var4.gridheight = 1;
- var4.gridx = 0;
- var4.gridy = 1;
- var3.setConstraints(this.button7, var4);
- ((Container)this).add(this.button7);
- var4.gridx = 1;
- var4.gridy = 1;
- var3.setConstraints(this.button8, var4);
- ((Container)this).add(this.button8);
- var4.gridx = 2;
- var4.gridy = 1;
- var3.setConstraints(this.button9, var4);
- ((Container)this).add(this.button9);
- var4.gridx = 3;
- var4.gridy = 1;
- var3.setConstraints(this.buttonDivide, var4);
- ((Container)this).add(this.buttonDivide);
- var4.gridx = 4;
- var4.gridy = 1;
- var3.setConstraints(this.buttonBack, var4);
- ((Container)this).add(this.buttonBack);
- var4.gridx = 0;
- var4.gridy = 2;
- var3.setConstraints(this.button4, var4);
- ((Container)this).add(this.button4);
- var4.gridx = 1;
- var4.gridy = 2;
- var3.setConstraints(this.button5, var4);
- ((Container)this).add(this.button5);
- var4.gridx = 2;
- var4.gridy = 2;
- var3.setConstraints(this.button6, var4);
- ((Container)this).add(this.button6);
- var4.gridx = 3;
- var4.gridy = 2;
- var3.setConstraints(this.buttonMultiply, var4);
- ((Container)this).add(this.buttonMultiply);
- var4.gridx = 4;
- var4.gridy = 2;
- var3.setConstraints(this.buttonClear, var4);
- ((Container)this).add(this.buttonClear);
- var4.gridx = 0;
- var4.gridy = 3;
- var3.setConstraints(this.button1, var4);
- ((Container)this).add(this.button1);
- var4.gridx = 1;
- var4.gridy = 3;
- var3.setConstraints(this.button2, var4);
- ((Container)this).add(this.button2);
- var4.gridx = 2;
- var4.gridy = 3;
- var3.setConstraints(this.button3, var4);
- ((Container)this).add(this.button3);
- var4.gridx = 3;
- var4.gridy = 3;
- var3.setConstraints(this.buttonSubtract, var4);
- ((Container)this).add(this.buttonSubtract);
- var4.gridx = 4;
- var4.gridy = 3;
- var4.gridheight = 2;
- var3.setConstraints(this.buttonEquals, var4);
- ((Container)this).add(this.buttonEquals);
- var4.gridheight = 1;
- var4.gridx = 0;
- var4.gridy = 4;
- var3.setConstraints(this.buttonPlusMinus, var4);
- ((Container)this).add(this.buttonPlusMinus);
- var4.gridx = 1;
- var4.gridy = 4;
- var3.setConstraints(this.button0, var4);
- ((Container)this).add(this.button0);
- var4.gridx = 2;
- var4.gridy = 4;
- var3.setConstraints(this.buttonPoint, var4);
- ((Container)this).add(this.buttonPoint);
- var4.gridx = 3;
- var4.gridy = 4;
- var3.setConstraints(this.buttonAdd, var4);
- ((Container)this).add(this.buttonAdd);
- this.setDisplayString("0");
- this.updateDisplay();
- }
-
- void GetParameters(Applet var1, int var2) {
- String var3 = var1.getParameter("calculatorBkColor" + var2);
- this.bkColor = AppletParam2.GetColor(var3, Color.white);
- ((Component)this).setBackground(this.bkColor);
- }
-
- void setDisplayString(String var1) {
- this.displayString = var1;
- }
-
- String getDisplayString() {
- return this.displayString;
- }
-
- void updateDisplay() {
- this.displayField.setText(this.displayString);
- }
-
- public boolean handleEvent(Event var1) {
- if (var1.id == 1001 && var1.target instanceof Button) {
- Button var2 = (Button)var1.target;
- String var3 = var2.getLabel();
- if (var2 != this.button0 && var2 != this.button1 && var2 != this.button2 && var2 != this.button3 && var2 != this.button4 && var2 != this.button5 && var2 != this.button6 && var2 != this.button7 && var2 != this.button8 && var2 != this.button9) {
- if (var2 == this.buttonPlusMinus) {
- Double var4 = new Double(this.displayString);
- if (var4 < (double)0.0F) {
- this.displayString = this.displayString.substring(1);
- } else {
- this.displayString = "-" + this.displayString;
- }
- } else if (var2 == this.buttonPoint) {
- if (this.displayString.indexOf(46) == -1) {
- String var5 = this.displayString;
- this.displayString = var5 + ".";
- }
- } else if (var2 == this.buttonBack) {
- if (!this.operationClicked) {
- if (this.displayString.length() == 1) {
- this.displayString = "0";
- } else {
- this.displayString = this.displayString.substring(0, this.displayString.length() - 1);
- if (this.displayString.length() == 0) {
- this.displayString = "0";
- }
-
- if (this.displayString.charAt(this.displayString.length() - 1) == '.') {
- this.displayString = this.displayString.substring(0, this.displayString.length() - 1);
- }
- }
- }
- } else if (var2 == this.buttonClear) {
- this.displayString = "0";
- this.pendingValue1 = (double)0.0F;
- this.hasPendingValue = false;
- this.operationClicked = true;
- } else if (var2 == this.buttonMultiply) {
- if (!this.operationClicked) {
- this.ComputePendingOperation();
- this.pendingOperation = 0;
- }
- } else if (var2 == this.buttonDivide) {
- if (!this.operationClicked) {
- this.ComputePendingOperation();
- this.pendingOperation = 1;
- }
- } else if (var2 == this.buttonAdd) {
- if (!this.operationClicked) {
- this.ComputePendingOperation();
- this.pendingOperation = 2;
- }
- } else if (var2 == this.buttonSubtract) {
- if (!this.operationClicked) {
- this.ComputePendingOperation();
- this.pendingOperation = 3;
- }
- } else if (var2 == this.buttonEquals && !this.operationClicked) {
- this.ComputePendingOperation();
- this.pendingValue1 = (double)0.0F;
- this.hasPendingValue = false;
- this.operationClicked = true;
- }
- } else {
- if (this.displayString.compareTo("0") == 0) {
- this.displayString = var3;
- } else if (this.operationClicked) {
- this.displayString = var3;
- } else {
- String var10001 = this.displayString;
- this.displayString = var10001 + var3;
- }
-
- this.operationClicked = false;
- }
-
- this.updateDisplay();
- return true;
- } else {
- return false;
- }
- }
-
- void ComputePendingOperation() {
- this.operationClicked = true;
- Double var1 = new Double(this.displayString);
- if (this.hasPendingValue) {
- switch (this.pendingOperation) {
- case 0:
- this.pendingValue1 *= var1;
- break;
- case 1:
- if (this.displayString.compareTo("0") != 0) {
- this.pendingValue1 /= var1;
- }
- break;
- case 2:
- this.pendingValue1 += var1;
- break;
- case 3:
- this.pendingValue1 -= var1;
- }
-
- this.displayString = Double.toString(this.pendingValue1);
- } else {
- this.pendingValue1 = var1;
- this.hasPendingValue = true;
- }
- }
-
- void setBackgroundColor(Color var1) {
- ((Component)this).setBackground(var1);
- }
-
- Color getBackgroundColor() {
- return ((Component)this).getBackground();
- }
-
- public void paint(Graphics var1) {
- this.update(var1);
- }
-
- public void update(Graphics var1) {
- if (this.osImage == null) {
- this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
- this.osg = this.osImage.getGraphics();
- }
-
- this.osg.setColor(((Component)this).getBackground());
- this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
- }
-
- public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
- ((Component)this).repaint();
- return true;
- }
-
- public synchronized void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- this.osImage = null;
- this.osg = null;
- }
- }
-